#ifndef GAMERULE_H
#define GAMERULE_H
#include <QPoint>
#include <vector>
#include "ChessBoard.h"
#include "Player.h"
class GameRule{
public:
    virtual bool checkAddPoint(QPoint&,Player*);
    virtual bool checkAddPoint(QPoint&,QPoint&,Player*);
    virtual bool checkChosenPoint(QPoint&,Player*);
    virtual void putChess(std::vector<QPoint>*,Player*)=0;
    virtual Player* getFirstPlayer()=0;
    virtual Player* getNextPlayer(Player*)=0;
    virtual bool isWin()=0;
    virtual void setChessBoard(ChessBoard* chessBoard);
    virtual void setPlayerList(std::vector<Player*>*);
protected:
    ChessBoard* _chessBoard;
    std::vector< std::vector<Chess*> >* _chessBoardArray;
    std::vector<Player*>* _playerList;
private:

};

#endif // GAMERULE_H
